$(document).ready(function(){
    initMask();
    initEnviar();
    initGrid();
    iniBusca();
    removeSegmento();
    removeHoras();

});

function removeHoras(){
    $(".btnDelete").live('click',function() {
        var del = confirm("Tem certeza que deseja excluir o registro?")
        if(del) $(this).closest('tr').remove();
    });    
}

function initMask(){
    $("input[alt]").setMask();
}

function initGrid(){
    $("#flex1").flexigrid({
        url: '/segmento/consulta/lista',
        dataType: 'xml',
        colModel : [
            {display: 'Id', name : 'codigo', width : 80, sortable : true, align: 'center'},
            {display: 'Descrição', name : 'descricao', width : 250, sortable : true, align: 'left'},
            {display: 'Data Cadastro', name : 'dt_cadastro', width : 180, sortable : true, align: 'center'}
        ],
        buttons : [
            {name: 'Add', bclass: 'add', onpress : adicionar},
            {name: 'Edit', bclass: 'add', onpress : edita},
            {separator: true}
        ],
        searchitems : [
            {display: 'Id', name : 'codigo'},
            {display: 'Descrição', name : 'descricao', isdefault: true}
        ],
        sortname: "codigo",
        sortorder: "asc",
        usepager: true,
        title: 'Módulo',
        useRp: true,
        rp: 15,
        showTableToggleBtn: true,
        width: 600,
        height: 200
    }); 
}

function initEnviar(){
    $("#btnEnviar").live("click",function(event){
        event.preventDefault();
        removeMsgErro('initEnviar');
        
        if(!validaForm()){
            $.ajax({
                url: '/segmento/insere/valida',
                data: dataSend(),
                dataType: 'Json',
                type: 'POST',
                contentType: "application/x-www-form-urlencoded;charset=UTF-8",
                beforeSend: function(){
                },
                success: function(data){
                    if(!isEmpty(data.erros)){
                        for (i = 0; i < data.erros.length; i++) {
                            exibeMsgErro(data.erros[i], 'initEnviar');
                        }
                    }else{
                        $("#pesquisa_conteudo_form").submit();
                    }
                },
                error: function(){
                }
            });
        }
    });
}

function dataSend(){
    return $("#pesquisa_conteudo_form input,#pesquisa_conteudo_form select").serialize();
}

function removeSegmento(){
    $('#btnExcluir').live('click',function(){
        var answer = confirm("Tem certeza que deseja excluir?");
        if (answer){
            removeMsgErro('exclui1');
            var busca = $("#codigo").val();

            if(isEmpty(busca)){
                exibeMsgErro('É necessário selecionar um registro para ser removido.', 'exclui1');
            }else{
                window.location = '/segmento/insere/delete?codigo=' + busca;
            }
        }
    });
}


function edita(){
    removeMsgErro('edita1');
    var busca = $(".trSelected td[abbr='codigo'] div");

    if(busca.length == 0){
        exibeMsgErro('É necessário selecionar um registro para editar.', 'edita1');
    }else if(busca.length > 1){
        exibeMsgErro('É necessário somente um registro para editar.', 'edita1');
    }else if(isNaN(busca.html() * 1)){
        exibeMsgErro('Não é possível editar esse registro.', 'edita1');
    }else{
        window.location = '/segmento/edita?codigo=' + busca.html();
    }
}


function validaForm(){
    removeMsgErro(new Array("validaForm1","validaForm2","validaForm3"));
    var erro = false;
    if(isEmpty($("#descricao").val())){
        exibeMsgErro("É necessário preencher o campo 'Nome do Segmento''","validaForm1" );
        erro = true;
    }
    
    var arrOrdem = new Array();
    var arrUnico = new Array();
    var n = 0;
    $('.input-ordem').each(function(){
        arrOrdem[n] = $(this).val();
        arrUnico[n] = $(this).val();
        n++;
    })
    
    $.unique(arrUnico);
    
    if(arrUnico.length != arrOrdem.length){
        exibeMsgErro("Há alguma ordem informada nas horas que estão repetidas","validaForm1" );
        erro = true;
    }
        
    return erro;
}

function adicionar(){
    window.location = '/segmento/insere';
}


function iniBusca(){
    $('#btnConsulta').live('click',function(event){
        event.preventDefault();
        var erros = new Array();
        var dtEx = $('#dt_expiracao').val();
        var deCad = $('#dt_cadastro').val();
        
        if(!isEmpty(dtEx) && !dateIsValid(dtEx)){
            erros['iniBUsca'] = 'Data de Expiração não é válida.'; 
        }
        
        if(!isEmpty(deCad) && !dateIsValid(deCad)){
            erros['iniBUsca'] = 'Data de Expiração não é válida.'; 
        }
        
        if(erros.length > 0){
            exibeMsgErro(erros, null);
        }else{
            var dt = $('#pesquisa_conteudo_form input').serializeArray();
            $("#flex1").flexOptions({params: dt}).flexReload();
        }
        
    });
}

function addRowAgenda(){
     if($(".input-ordem").length > 0){
        var proxCod = parseInt($(".input-ordem").last().attr('name').substr(6, 1))+1;
        var proxOrdem = parseInt($(".input-ordem").last().attr('value'))+1;
     }else{
        var proxCod = 1;
        var proxOrdem = 1;
     }
     $("#tblAgendaSegmento").append('<tr><td><input type="text" class="valores input-small input-hora" alt="time" value="00:00" name="hora_' + proxCod + '" /></td><td><input type="text" class="valores input-small input-ordem" value="' + proxOrdem + '" name="ordem_' + proxCod + '" /> <input type="button" value="X" class="btnDelete" /></td></tr>');
     initMask();
}